#include "Light.h"

namespace baker
{
    //--------------------------------------------------------------------------
    Light::Light( void )
    {
        g_print( "Light created\n" );
    }

    //--------------------------------------------------------------------------
    Light::~Light( void )
    {
        g_print( "Light destroyed\n" );
    }

    //--------------------------------------------------------------------------
    void Light::setParam( guint id
                        , const Vec3 & val
                        )
    {
    }

    //--------------------------------------------------------------------------
    Light & Light::setPos( real x
                         , real y
                         , real z
                         )
    {
        mPos.x( x ).y( y ).z( z );

        return *this;
    }

    //--------------------------------------------------------------------------
    Vec3 Light::getPos() const
    {
        return mPos;
    }

    //--------------------------------------------------------------------------
    Light & Light::setDir( real x
                         , real y
                         , real z
                         )
    {
        mDir.x( x ).y( y ).z( z );

        return *this;
    }

    //--------------------------------------------------------------------------
    Vec3 Light::getDir() const
    {
        return mDir;
    }

    //--------------------------------------------------------------------------
    Light & Light::setColor( real r
                           , real g
                           , real b
                           )
    {
        mColor.x( r ).y( g ).z( b );

        return *this;
    }

    //--------------------------------------------------------------------------
    Vec3 Light::getColor() const
    {
        return mColor;
    }

    //--------------------------------------------------------------------------
    Light & Light::setCastShadows( gboolean castShadows )
    {
        mCastShadows = castShadows;

        return *this;
    }

    //--------------------------------------------------------------------------
    gboolean Light::getCastShadows() const
    {
        return mCastShadows;
    }

    //--------------------------------------------------------------------------
    //--------------------------------------------------------------------------
    //--------------------------------------------------------------------------
}
